revision:
<div class="frame">
<img src="../images/1.jpg" alt="drag-and-drop image script" title="drag-and-drop image script"
class="dragme" >
</div>
<style>
.frame{width: 45vw; height: 45vw; border: 0.2vw solid grey; z-index: 10}
.dragme{position:relative; width: 20vw; height: 16vw; cursor: move;}
</style>
<script>
function startDrag(e) {
// determine event object
if (!e) {
var e = window.event;
}
if(e.preventDefault) e.preventDefault();
// IE uses srcElement, others use target
var targ = e.target ? e.target : e.srcElement;
if (targ.className != 'dragme') {return};
// calculate event X, Y coordinates
offsetX = e.clientX;
offsetY = e.clientY;
// assign default values for top and left properties
if(!targ.style.left) { targ.style.left='5px'};
if(!targ.style.top) { targ.style.top='5px'};
// calculate integer values for top and left properties
coordX = parseInt(targ.style.left);
coordY = parseInt(targ.style.top);
drag = true;
// move div element
document.onmousemove=dragDiv;
return false;
}
function dragDiv(e) {
if (!drag) {return};
if (!e) { var e= window.event};
var targ=e.target?e.target:e.srcElement;
// move div element
targ.style.left=coordX+e.clientX-offsetX+'px';
targ.style.top=coordY+e.clientY-offsetY+'px';
return false;
}
function stopDrag() {
drag=false;
}
window.onload = function() {
document.onmousedown = startDrag;
document.onmouseup = stopDrag;
}
</script>
move this picture
code:
<div class="grid_A">
<div class="frame-1">
<div id="mydiv">
<div id="mydivheader">
<p>move this picture</p>
<img id="img-1" src="../images/2.jpg" alt="">
</div>
</div>
</div>
<style>
.frame-1{width: 45vw; height: 45vw; border: 0.2vw solid grey; z-index: 10;
border: 0.2vw solid blue;}
#mydiv {position: absolute; z-index: 9; background-color: #f1f1f1;
border: 0.4vw solid #d3d3d3; text-align: center; }
#mydivheader {background-color: pink; height: 2vw; padding: -1vw;}
#mydivheader p{color: blue;}
#img-1{position:relative; width: 20vw; height: 16vw; cursor: move;}
</style>
<script>
// Make the DIV element draggable:
dragElement(document.getElementById("mydiv"));
function dragElement(elmnt) {
var pos1 = 0, pos2 = 0, pos3 = 0, pos4 = 0;
if (document.getElementById(elmnt.id + "header")) {
document.getElementById(elmnt.id + "header").onmousedown = dragMouseDown;
} else {
elmnt.onmousedown = dragMouseDown;
}
function dragMouseDown(e) {
e = e || window.event;
e.preventDefault();
// get the mouse cursor position at startup:
pos3 = e.clientX;
pos4 = e.clientY;
document.onmouseup = closeDragElement;
// call a function whenever the cursor moves:
document.onmousemove = elementDrag;
}
function elementDrag(e) {
e = e || window.event;
e.preventDefault();
// calculate the new cursor position:
pos1 = pos3 - e.clientX;
pos2 = pos4 - e.clientY;
pos3 = e.clientX;
pos4 = e.clientY;
// set the element's new position:
elmnt.style.top = (elmnt.offsetTop - pos2) + "px";
elmnt.style.left = (elmnt.offsetLeft - pos1) + "px";
}
function closeDragElement() {
// stop moving when mouse button is released:
document.onmouseup = null;
document.onmousemove = null;
}
}
</script>
code:
<div class="frame-2">
<img id="dragme_1" class="draggable" src="../images/6.jpg" alt="sailing"
width="30%" height="auto">
</div>
<style>
.frame-2{width: 45vw; height: 45vw; border: 0.2vw solid grey; z-index: 10;
border: 0.2vw solid blue;}
.draggable {cursor: move; position: absolute; -webkit-user-select: none;
user-select: none; color: red; align-items: center; display: flex;
justify-content: center; border: 0.2vw solid blue; }
</style>
<script>
let x = 0, y = 0;
const ele = document.getElementById('dragme_1');
const mouseDownHandler = function (e) {
x = e.clientX;
y = e.clientY;
document.addEventListener('mousemove', mouseMoveHandler);
document.addEventListener('mouseup', mouseUpHandler);
};
const mouseMoveHandler = function (e) {
const dx = e.clientX - x;
const dy = e.clientY - y;
ele.style.top = `${ele.offsetTop + dy}px`;
ele.style.left = `${ele.offsetLeft + dx}px`;
x = e.clientX;
y = e.clientY;
};
const mouseUpHandler = function () {
document.removeEventListener('mousemove', mouseMoveHandler);
document.removeEventListener('mouseup', mouseUpHandler);
};
ele.addEventListener('mousedown', mouseDownHandler);
</script>
code:
<div class="grid_A">
<div class="frame-3">
<img class="draggable-1" id="dragme_2"src="../images/4.jpg" alt="" width="200" height="auto">
</div>
<style>
.frame-3{width: 45vw; height: 45vw; border: 0.2vw solid grey; z-index: 10; border: 0.2vw solid blue;}
.draggable-1 {cursor: move; position: absolute; -webkit-user-select: none; user-select: none; color: red; align-items: center; display: flex;
justify-content: center; border: 0.2vw solid greenyellow; }
</style>
<script>
document.addEventListener('DOMContentLoaded', function () {
let x = 0; let y = 0;
const ele = document.getElementById('dragme_2');
const mouseDownHandler = function (e) {
x = e.clientX;
y = e.clientY;
document.addEventListener('mousemove', mouseMoveHandler);
document.addEventListener('mouseup', mouseUpHandler);
};
const mouseMoveHandler = function (e) {
const dx = e.clientX - x;
const dy = e.clientY - y;
ele.style.top = (ele.offsetTop + dy) + 'px';
ele.style.left = (ele.offsetLeft + dx) + 'px';
x = e.clientX;
y = e.clientY;
};
const mouseUpHandler = function () {
document.removeEventListener('mousemove', mouseMoveHandler);
document.removeEventListener('mouseup', mouseUpHandler);
};
ele.addEventListener('mousedown', mouseDownHandler);
});
</script>
code:
<div class="frame-4">
<div id="zoom_1">
<img src="../images/17.jpg" alt="zoom">
</div>
</div>
<style>
.frame-4{width: 45vw; height: 45vw; border: 0.2vw solid grey; z-index: 10;
border: 0.2vw solid blue;}
#zoom_1 {width: 100%; height: 100%; transform-origin: 0px 0px; transform: scale(1)
translate(0px, 0px); cursor: grab; overflow: hidden;}
div#zoom_1 > img {width: 100%; height: 100%; }
</style>
<script>
var scale = 1, panning = false, pointX = 0, pointY = 0, start = { x: 0, y: 0 },
zoom = document.getElementById("zoom_1");
function setTransform() {
zoom.style.transform = "translate(" + pointX + "px, " + pointY + "px) scale(" + scale + ")";
}
zoom.onmousedown = function (e) {
e.preventDefault();
start = { x: e.clientX - pointX, y: e.clientY - pointY };
panning = true;
}
zoom.onmouseup = function (e) {
e.preventDefault();
panning = false;
}
zoom.onmousemove = function (e) {
e.preventDefault();
if (!panning) {
return;
}
pointX = (e.clientX - start.x);
pointY = (e.clientY - start.y);
setTransform();
}
zoom.onwheel = function (e) {
e.preventDefault();
var xs = (e.clientX - pointX) / scale, ys = (e.clientY - pointY) / scale,
delta = (e.wheelDelta ? e.wheelDelta : -e.deltaY);
(delta > 0) ? (scale *= 1.2) : (scale /= 1.2);
pointX = e.clientX - xs * scale;
pointY = e.clientY - ys * scale;
setTransform();
}
</script>